我昨天成功讓我的「水仙花數」執行了。
但是也犯了很愚蠢的錯誤...
不多說,開始正題。
昨天雖然成功執行了,但是今天不死心,還是想要把那個 num
改成個、十、百位的英文。
於是,我回去重新看了一遍關鍵字、識別字的教程,才發現了我犯了最基本的錯誤!!!
_
。於是,我就修正好了我的程式碼
for num in range(1, 1000):
Hundreds_digits = num // 100
Ten_digits = num // 10 % 10
Digits = num % 10
if num == Hundreds_digit ** 3 + Ten_digits ** 3 + Digits ** 3:
print(num)
就可以成功運行啦!!!
現在要來思考昨天提到的另一個問題,就是該怎麼讓10以下的「水仙花數」出現。
上面原作提供的算式是假定原本就是三位數的「水仙花數」,沒有將只有一位數的「水仙花數」考慮進去。
因此,我的思考點是將一個數字假設是 153,拆成 1100+510+3。
想是很簡單,但是實際要轉換成程式就變得跟啞巴一樣,不知道該怎麼下手耶...
再試過幾個非常失敗,而且寫到後來不知道自己在寫什麼的code寫法之後。
我想起,古人說的對...「凡事都是從模仿而來的」(有人說過嗎
所以,我決定...
上網問谷歌!!!)沒志氣
於是乎,我找到了我自己看起來覺得很厲害的程式碼。
為什麼我會覺得很厲害呢?因為它最短)很爛的辨別方式我知道
print('輸出所有水仙花數:' ) for i in range(0,100001): temp=i sum=0 a=len(str(i)) while temp: sum+=(temp%10)**a temp//=10 if sum==i: print(i,end=' ')
作者:yang元祐
連結:https://www.zhihu.com/question/21872507/answer/130662819
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
但是,又有一個問題了。
為什麼我複製貼上到 Anaconda,卻沒有任何反應呢?
難道大神的程式只能遠觀嗎?
總之,明天再試試看,不行的話就...
好啦,還是會努力的,只是想要作更多嘗試而已。
今天不熬夜
收工!!!